package com.example.service.impl;

import com.example.service.FileService;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.HashMap;
import java.util.Map;

@Service("minioFileServiceImpl")  // 这个名称需要与FileController中的@Qualifier值一致
@Primary  // 确保这是主要实现
public class TestFileServiceImpl implements FileService {
    
    // 使用内存存储模拟文件系统
    private final Map<String, byte[]> fileStorage = new HashMap<>();
    
    @Override
    public String upload(MultipartFile file) {
        if (file == null || file.isEmpty()) {
            return null;
        }
        
        try {
            String filename = file.getOriginalFilename();
            String objectName = "files/" + System.currentTimeMillis() + "_" + filename;
            
            // 将文件内容保存到内存中
            fileStorage.put(objectName, file.getBytes());
            
            return "http://test-server/" + objectName;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    
    @Override
    public boolean deleteFile(String objectName) {
        if (objectName == null || objectName.isEmpty()) {
            return false;
        }
        
        // 如果URL以服务器地址开头，只保留路径部分
        if (objectName.startsWith("http://test-server/")) {
            objectName = objectName.substring("http://test-server/".length());
        }
        
        return fileStorage.remove(objectName) != null;
    }
    
    // 用于测试的辅助方法
    public int getFileCount() {
        return fileStorage.size();
    }
} 